home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / A-Monthly Disks / (c)aax.d64 / ss-4 (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  5KB  |  137 lines

  1. 100 REM*** KEY BUFFER IS C64 ONLY!!
  2. 110 :
  3. 120 PRINT"[147][158]      FORM MAKER - LOUIS F. SANDER      [146] "
  4. 130 POKE53280,6:POKE53281,6
  5. 140 PRINT"[153]   THIS MAKES A FORM ON YOUR PRINTER."
  6. 150 INPUT"  YOUR PRINTER WIDTH IN SPACES  80[157][157][157][157]";PW:PW=PW-1
  7. 160 INPUT"   YOUR PAPER LENGTH IN INCHES  11[157][157][157][157]";PL:PL=INT(9*PL)
  8. 170 PRINT"            COLUMN 1    COLUMN 2"
  9. 180 PRINT"[153]          [207][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][183][183][183][183][183][183][183][183][183][165]"
  10. 190 PRINT"    ROW 1 [153][165]          [165]             [165]"
  11. 200 PRINT"          [207][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][183][183][183][183][183][183][183][183][183][165]"
  12. 210 PRINT"    ROW 2 [153][204][175][175][175][175][175][175][175][175][175][175][204][175][175][175][175][175][175][175][175][175][175][175][175][175][165]"
  13. 220 PRINT"          [165]          [165]             [165]"
  14. 230 PRINT"    ROW 3 [153][204][175][175][175][175][175][175][175][175][175][175][204][175][175][175][175][175][175][175][175][175][175][175][175][175][165]"
  15. 240 PRINT"[158]THE FORM CAN HAVE ANY NUMBER OF COLUMNS"
  16. 250 PRINT"AND ROWS. IT CAN BE UP TO";PW;"[158]PRINTER"
  17. 260 PRINT"SPACES WIDE AND";PL;"[158]PRINTER LINES LONG,"
  18. 270 PRINT"INCLUDING LABELS FOR COLUMNS AND ROWS."
  19. 280 PRINT"YOU CHOOSE ANINDIVIDUAL WIDTH FOR EACH"
  20. 290 PRINT"COLUMN, AND ONE HEIGHT FOR ALL THE ROWS."
  21. 295 PRINT"   DO YOU WANT TO LOAD A FORM?
  22. 296 [161]A$:[139]A$[178]""[167]296
  23. 297 [139]A$[178]"Y"[167]1300
  24. 300 [133]"  HOW MANY COLUMNS ON THE FORM";NC%:[134]CW(NC%):[153]:[139]NC%[179]1[167]1020
  25. 310 W[178]0:[129]J[178]1[164]NC%
  26. 320 [153]"   HOW MANY SPACES IN COLUMN";J;"CMD";:CW(J)[178]0:[133]CW(J)
  27. 330 [139]CW(J)[179]1[167][153][163]35)"ONSYS_ ???":[137]320
  28. 340 W[178]W[170]CW(J):[130]
  29. 350 [153]"SYSTHESE COLUMNS TAKE UP";W;"SYSOF THE";PW
  30. 360 [153]"SYSAVAILABLE SPACES ON YOUR PRINTER."
  31. 370 [139]W[177]PW[167][153]" ABORTED - MAXIMUM WIDTH IS";PW;"CMD SPACES. ":[137]1020
  32. 380 [133]"         IS THIS O.K. (Y OR N)  YCMDCMDCMD";A$:[139]A$[179][177]"Y"[167][153]:[137]310
  33. 390 [133]"    LABEL THE COLUMNS (Y OR N)  YCMDCMDCMD";A$:[139][200](A$,1)[179][177]"Y"[167]470
  34. 400 [141]1090:[129]J[178]1[164]NC%
  35. 410 [153]"LABEL FOR COLUMN";J;"-";CW(J);"SPACES"
  36. 420 [153]"  ";[199](34);[199](20);[199](34);
  37. 430 [129]K[178]1[164]CW(J):[153]" ";:[130]:A[178][185](0):[153][199](34):[139]A[177]38[167][153]"ON";
  38. 440 [153]"ON";:[151]631,29:[151]198,1:[133]A$
  39. 450 [139][195](A$)[179][177]CW(J)[167][153]"SYS ERROR!! - TRY AGAIN ":[137]410
  40. 460 L$[178]L$[170]A$:[130]
  41. 470 [153]"SYSTHAT FINISHES THE VERTICAL COLUMNS."
  42. 480 [153]"NOW WE WILL DO THE HORIZONTAL ROWS,"
  43. 490 [153]"WHICH CAN FILL UP TO";PL[171]1;"SYSPRINTER LINES."
  44. 500 [133]"     HOW MANY ROWS ON THE FORM";NR%:[139]NR%[179]1[167]500
  45. 510 NW[178][195]([196](NR%))[171]1:NW$[178][200]("     ",NW)
  46. 520 [133]"HOW MANY PRINTER LINES PER ROW";LR%:[139]LR%[179]1[167]520
  47. 530 TL[178]NR%[172]LR%[170]1:[134]L$(TL[170]2)
  48. 540 [153]"SYSTHESE ROWS TAKE UP";TL;"SYSPRINTER LINES,"
  49. 550 [153]"INCLUDING A LINE FOR COLUMN LABELS."
  50. 560 [153]"YOUR PAPER HAS";PL;"SYSLINES, LEAVING";PL[171]TL
  51. 570 [153]"SYSLINES UNPRINTED."
  52. 580 [139]TL[177]PL[167][153]" ABORTED - TOO LONG FOR THE PAPER.":[137]1020
  53. 590 [153]"SYSTHE FORM IS";W;"SYSSPACES WIDE, LEAVING"
  54. 600 [153]"CMD";PW[171]W;"SYSSPACES FOR ";
  55. 610 [139]NW[178][179]PW[171]W[167][153]"NUMBERING OR ";
  56. 620 [153]"LABELING"
  57. 630 [153]"ITS";NR%;"SYSHORIZONTAL ROWS."
  58. 640 [139]NW[177]PW[171]W[167][153]"THERE IS NO ROOM TO NUMBER THEM.":[137]690
  59. 650 [133]"      NUMBER THE ROWS (Y OR N)";A$:[139][200](A$,1)[179][177]"Y"[167]690
  60. 660 [129]J[178]0[164]TL:L$(J)[178]NW$:[130]:J[178]1
  61. 670 [129]K[178]1[170][181]((LR%[171]1)[173]2)[164]TL[171]1[169]LR%:L$(K)[178][201]("    "[170][196](J),NW):J[178]J[170]1
  62. 680 [130]:[137]830
  63. 690 [133]"       LABEL THE ROWS (Y OR N)";A$:[139][200](A$,1)[179][177]"Y"[167]830
  64. 700 [141]1090
  65. 710 [133]"     # SPACES IN LONGEST LABEL";LW
  66. 720 [139]LW[177]PW[171]W[167][153]"SYS ERROR!! -";PW[171]W;"CMD MAXIMUM ":[137]710
  67. 730 [129]J[178]1[164]LW:LW$[178]LW$[170]" ":[130]
  68. 740 [129]J[178]0[164]TL:L$(J)[178]LW$:[130]:J[178]1
  69. 750 [129]K[178]1[170][181]((LR%[171]1)[173]2)[164]TL[171]1[169]LR%
  70. 760 [153]"LABEL FOR ROW";J;"-";LW;"SPACES"
  71. 770 [153]"  ";[199](34);LW$;:A[178][185](0):[153][199](34):[139]A[177]38[167][153]"ON";
  72. 780 [153]"ON";:[151]631,29:[151]198,1:[133]A$
  73. 790 [139][195](A$)[179][177]LW[167][153]"SYS ERROR!! - TRY AGAIN ":[137]760
  74. 800 L$(K)[178]A$:J[178]J[170]1:[130]
  75. 810 :
  76. 820 [143] PRINT THE FORM
  77. 830 [153]"SYSTHE FORM IS" [200]([196]((LW[170]W)[173]10),5);[199](34);" WIDE BY";
  78. 840 [153][200]([196](TL[173]9),5);[199](34);" LONG,"
  79. 850 [153]"OR";LW[170]W;"SPACES WIDE BY";TL;"LINES LONG."
  80. 855 [153]"       PWAITRINT OR SWAITAVE THIS FORM?
  81. 856 GETA$:IF A$="S"THENGOTO1200
  82. 857 IFA$<>"P"THEN856
  83. 860 PRINT"[153][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
  84. 870 PRINT"    ALIGN THE PAPER IN THE PRINTER,    "
  85. 880 PRINT"    THEN PRESS THE 'P' KEY...          "
  86. 890 GETA$:IFA$=""THEN890
  87. 892 IFA$="P"THEN900
  88. 895 IFA$="Q"THEN1000
  89. 896 GOTO890
  90. 900 T$=CHR$(15) :REM TEXT MODE **TARGET
  91. 910 G$=CHR$(8)  :REM GRAPHICS MODE (FOR LINE SPACING)
  92. 920 OPEN4,4:CMD4:GOSUB1060:PRINTL$
  93. 930 FORH=1TONR%:GOSUB1060;:FORJ=1TONC%:PRINTCHR$(207);:FORK=1TOCW(J)-1
  94. 940 IFCW(J)>1THENPRINTCHR$(163);
  95. 950 NEXT:NEXT:PRINTCHR$(165);G$:IFLR%<2THEN990
  96. 960 FORI=1TOLR%-1:GOSUB1060;:FORJ=1TONC%:PRINTCHR$(165);:FORK=1TOCW(J)-1
  97. 970 IFCW(J)>1THENPRINT" ";
  98. 980 NEXT:NEXT:PRINTCHR$(165);G$:NEXT
  99. 990 NEXT:GOSUB1060;:FORJ=1TONC%:FORK=1TOCW(J):PRINTCHR$(163);:NEXT:NEXT
  100. 995 PRINT#4:CLOSE4
  101. 1000 PRINT"[147][158]      FORM MAKER - LOUIS F. SANDER      [146] "
  102. 1010 PRINT"         YOUR FORM IS FINISHED!"
  103. 1020 POKE53280,14:POKE53281,6:PRINT"[154]";
  104. 1030 PRINT"          CREATE ANOTHER FORM?"
  105. 1031 GOSUB1500
  106. 1033 GETA$:IFA$=""THEN1033
  107. 1035 IFA$="Y"THENCLR:GOTO120
  108. 1036 END
  109. 1040 :
  110. 1050 REM ROW LABELS SUBROUTINE
  111. 1060 PRINTT$;L$(LC);:LC=LC+1:RETURN
  112. 1070 :
  113. 1080 REM LABEL SUBROUTINE
  114. 1090 PRINT"[158]ENTER THE LABELS RIGHT NOW. YOU MUST"
  115. 1100 PRINT"KEEP THEM BETWEEN THE QUOTATION MARKS,"
  116. 1110 PRINT"BUT YOU CAN CENTER THEM OR POSITION"
  117. 1120 PRINT"THEM AS YOU LIKE."
  118. 1130 RETURN
  119. 1190 REM * FILE HANDLING BY BRIAN ROWE *
  120. 1200 CLOSE2:INPUT"        FORM NAME";A$
  121. 1210 OPEN2,8,1,A$+",S,W"
  122. 1212 PRINT#2,TL:PRINT#2,LW:PRINT#2,W:PRINT#2,L$:PRINT#2,NR%:PRINT#2,NC%
  123. 1213 PRINT#2,LR%
  124. 1215 FORX=0TOTL:PRINT#2,CHR$(34)+L$(X)+CHR$(34):NEXT
  125. 1216 FORY=1TONC%:PRINT#2,CW(Y):NEXT:CLOSE2
  126. 1240 GOTO 860
  127. 1300 CLOSE2:INPUT"        FORM NAME";A$
  128. 1310 OPEN2,8,2,A$+",S,R"
  129. 1312 INPUT#2,TL:INPUT#2,LW:INPUT#2,W:INPUT#2,L$:INPUT#2,NR%:INPUT#2,NC%
  130. 1313 INPUT#2,LR%
  131. 1314 DIMCW(NC%):DIML$(TL+2)
  132. 1315 FORX=0TOTL:INPUT#2,L$(X):NEXT
  133. 1317 FORY=1TONC%:INPUT#2,CW(Y):NEXT:CLOSE2
  134. 1330 GOTO860
  135. 1500 PRINT" [158]    FILE ROUTINES BY BRIAN D. ROWE    [145][145][145][145][145]"
  136. 1501 RETURN
  137.